//*********************************************************
//
//    Copyright (c) Microsoft. All rights reserved.
//    This code is licensed under the Apache License, Version 2.0.
//    THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
//    ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
//    IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
//    PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
//
//*********************************************************

namespace Microsoft.Research.ScientificWorkflow.UIDesigner
{
    #region Declaration
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    #endregion

    public static class UIDesignerCodeConstants
    {
        #region Activity Class Names
        public const string ACTIVITYCLASSIFELSE = "TridentBasicActivities.Activities.IFElse";
        public const string ACTIVITYCLASSIFCONDITION = "TridentBasicActivities.Activities.IfCondition";
        public const string ACTIVITYCLASSIFFALSE = "TridentBasicActivities.Activities.IfFalse";
        public const string ACTIVITYCLASSIFTRUE = "TridentBasicActivities.Activities.IfTrue";
        public const string ACTIVITYCLASSPARALLEL = "System.Workflow.Activities.ParallelActivity";
        public const string ACTIVITYCLASSSEQUENCE = "System.Workflow.Activities.SequenceActivity";
        public const string ACTIVITYCLASSFOR = "TridentBasicActivities.Activities.ForActivity";
        public const string ACTIVITYCLASSREPLICATOR = "TridentBasicActivities.Activities.Replicator";
        public const string ACTIVITYCLASSLISTEN = "System.Workflow.Activities.ListenActivity";
        #endregion

        #region WorkFlowTreeview constants

        public const string CHILDWORKFLOWTREEITEMSTYLE = "ChildTreeViewItemStyle";
        public const string PARENTWORKFLOWTREEITEMSTYLE = "ParentTreeViewItemStyle";
        public const string CHARACTERELLIPSE = "..";
        #endregion

        #region ActivityTreeview constants

        public const string CHILDACTIVITYTREEITEMSTYLE = "ActivityItemStyle";
        public const string PARENTACTIVITYTREEITEMSTYLE = "ParentItemStyle";
        public const string ACTIVITYTOOLTIPNAME = "Name :";
        public const string ACTIVITYTOOLTIPDESCRIPTION = "Description :";

        public const string UNCATEGORY = "Uncategorized";
        public const string DATAIO = "Data Input and Output";
        public const string VISUALIZATION = "Visualization";
        public const string CONTROLFLOW = "Control Flow";
        public const string DATAPROCESSING = "Data Processing";

        #endregion

        #region CategoryPicker Constants
        public const string CATEGORYPICKERTREEITEMSTYLE = "TreeViewItemStyle1";
        public const string WORKFLOWPICKERTREEITEMSTYLE = "WorkflowNodeStyle";
        #endregion

        #region parameter connection element constants
        public const string LINECOLOR = "#FFB6CAD5";
        #endregion

        #region activitybody constants
        public const string PARAMETERBOXCOLOR = "#FFC8D4E8";
        #endregion

        #region activity selection constants
        public const string ACTIVITYSELECTEDCOLOR1 = "#FFFFF0C6";

        public const string ACTIVITYSELECTEDCOLOR2 = "#FFFFDF88";
        #endregion

        public const string BASEPATH1 = "Research";
        public const string BASEPATH2 = "Trident";
        public const string BASEPATH3 = "CustomActivities";

        public static string DATATYPEXMLPATH
        {
            get
            {
                string basePath = Path.Combine(BASEPATH1, BASEPATH2);
                return Path.Combine(basePath, "Datatypes.xml");
            }
        }

        #region Monitor settings window constants
        public const string MONITORLOGFILEFILTER = "LogFiles (*.log)|*.log| All Files(*.*)|*.*";

        public static string MONITORSETTINGSXMLPATH
        {
            get
            {
                string basePath = Path.Combine(BASEPATH1, BASEPATH2);
                return Path.Combine(basePath, "MonitorSettings.xml");
            }
        }
        #endregion

        public static string ACTIVITYTEMPPATH
        {
            get
            {
                return Path.Combine(Path.Combine(BASEPATH1, BASEPATH2), BASEPATH3);
            }
        }

        #region Output Supported constants

        public static string OUTPUTSUPPORTEDTYPESSETTINGSXMLPATH
        {
            get
            {
                return "OutputSupportedTypes.xml";
            }
        }
        #endregion
    }
}
